function [	tDoorSignal,			...
			tLaser1Signal,			...
			tLaser2Signal	] =		...
				GetSignals( tEvent )
	%
	% allocation
	tDoorSignal = Signal();
	tLaser1Signal = Signal();
	tLaser2Signal = Signal();
	%
	% consistency checking
	if( numel(tEvent.aafRawData) == 0 )
		%
		return;
		%
	end;%
	%
	% for readability
	aiTimes					= tEvent.aafRawData(1, 2):25:tEvent.aafRawData(end, 2);
	aiPlotTimes				= aiTimes - min( aiTimes );
	%
	%
	%
	% --------------------------------------------------------------------
	% create the signals
	%
	afMergedDoorSignal		= zeros(numel(aiPlotTimes), 1); 
	afMergedLaser1Signal	= zeros(numel(aiPlotTimes), 1); 
	afMergedLaser2Signal	= zeros(numel(aiPlotTimes), 1);
	%
	for iTransition = 1:size( tEvent.aaiDoorOpeningClosingTransitions, 1 );
		%
		iStartingIndex	= find( aiPlotTimes == tEvent.aaiDoorOpeningClosingTransitions(iTransition, 1) - aiTimes(1), 1, 'first' );
		iEndingIndex	= find( aiPlotTimes == tEvent.aaiDoorOpeningClosingTransitions(iTransition, 2) - aiTimes(1), 1, 'last' );
		%
		afMergedDoorSignal( iStartingIndex:iEndingIndex ) = ...
			ones( size(afMergedDoorSignal( iStartingIndex:iEndingIndex )) );
		%
	end;%
	%
	for iTransition = 1:size( tEvent.aaiLaser1OpeningClosingTransitions, 1 );
		%
		iStartingIndex	= find( aiPlotTimes == tEvent.aaiLaser1OpeningClosingTransitions(iTransition, 1) - aiTimes(1), 1, 'first' );
		iEndingIndex	= find( aiPlotTimes == tEvent.aaiLaser1OpeningClosingTransitions(iTransition, 2) - aiTimes(1), 1, 'last' );
		%
		afMergedLaser1Signal( iStartingIndex:iEndingIndex ) = ...
			ones( size(afMergedLaser1Signal( iStartingIndex:iEndingIndex )) );
		%
	end;%
	%
	for iTransition = 1:size( tEvent.aaiLaser2OpeningClosingTransitions, 1 );
		%
		iStartingIndex	= find( aiPlotTimes == tEvent.aaiLaser2OpeningClosingTransitions(iTransition, 1) - aiTimes(1), 1, 'first' );
		iEndingIndex	= find( aiPlotTimes == tEvent.aaiLaser2OpeningClosingTransitions(iTransition, 2) - aiTimes(1), 1, 'last' );
		%
		afMergedLaser2Signal( iStartingIndex:iEndingIndex ) = ...
			ones( size(afMergedLaser2Signal( iStartingIndex:iEndingIndex )) );
		%
	end;%
	%
	%
	%
	% --------------------------------------------------------------------
	% convert them in the appropriate structures
	%
	% to convert the times, remember that they are in milliseconds
	afTimesInJulianDates = ( aiPlotTimes / 1000 ) * Time.GetJulianSecond();
	%
	tDoorSignal.Insert( afMergedDoorSignal, afTimesInJulianDates );
	tLaser1Signal.Insert( afMergedLaser1Signal, afTimesInJulianDates );
	tLaser2Signal.Insert( afMergedLaser2Signal, afTimesInJulianDates );
	%
	%
end % function

